<?php
class Productos_model extends CI_Model{
    var $id = '';
    var $nombre = '';
    var $descripcion = '';
    var $precio = '';
    var $categoria_id = '';
    var $genero = '';
    var $enPaginaPrincipal = '';
    var $activo = '';
    
    function __construct() {       
        parent::__construct();
    }
    
    function getId() {
        return $this->id;
    }

    function getNombre() {
        return $this->nombre;
    }

    function getDescripcion() {
        return $this->descripcion;
    }

    function getPrecio() {
        return $this->precio;
    }

    function getCategoria_id() {
        return $this->categoria_id;
    }

    function getGenero() {
        return $this->genero;
    }

    function getEnPaginaPrincipal() {
        return $this->enPaginaPrincipal;
    }

    function setId($id) {
        $this->id = $id;
    }

    function setNombre($nombre) {
        $this->nombre = $nombre;
    }

    function setDescripcion($descripcion) {
        $this->descripcion = $descripcion;
    }

    function setPrecio($precio) {
        $this->precio = $precio;
    }

    function setCategoria_id($categoria_id) {
        $this->categoria_id = $categoria_id;
    }

    function setGenero($genero) {
        $this->genero = $genero;
    }

    function setEnPaginaPrincipal($enPaginaPrincipal) {
        $this->enPaginaPrincipal = $enPaginaPrincipal;
    }
    
    function getActivo() {
        return $this->activo;
    }

    function setActivo($activo) {
        $this->activo = $activo;
    }
        
    function obtenerProductos(){
        $query = $this->db->get('producto');       
        return $query->result_array();
    }
    
    function obtenerProductosPrincipal(){
        $query = $this->db->get_where('producto',array('principal' =>  1));       
        return $query->result_array();
    }
    
    function agregarProducto ($unProducto){
         $this->db->insert('producto', $unProducto);  
    }
    
    function modificarProducto ($unProducto){
        $this->db->where('id', $unProducto->getId);
        $this->db->update('unProducto', $unProducto);
    }
    
    function borrarProducto ($unProducto){ //viene la categoria con activa en false  solo actualizo
        $this->modificarCategoria($unProducto);
    }
    
    function agregarPalabraClave($unaPalabra){
        $data = array('id_palabra' => $unaPalabra->getId() ,'id_producto' => $this->getId());
        $this->db->insert('palabraclavexproducto', $data); 
    }
    
    function quitarPalabraClave($unaPalabra){        
        $this->db->delete('palabraclavexproducto', array('id_palabra' =>  $unaPalabra->getId(),'id_producto' => $this->getId())); 
    }
    
    function productosPorCategoria($unaCategoriaNombre){
        $this->db->select('producto.*');
        $this->db->from('producto');
        $this->db->join('categoria', 'categoria.id = producto.id');
        $this->db->where('producto.activo', 1); 
        $this->db->where('categoria.nombre', $unaCategoriaNombre); 
        $query = $this->db->get();
        return $query->result_array(); 
    }
    
    function productosPorPalabra($unaPalabra){
        $this->db->select('producto.*');
        $this->db->from('producto');
        $this->db->join('palabraclavexproducto', 'palabraclavexproducto.id_producto = producto.id');
        $this->db->join('palabraclave', 'palabraclavexproducto.id_palabra = palabraclave.id');
        $this->db->where('palabraclave.palabra', $unaPalabra); 
        $query = $this->db->get();
        return $query->result_array();
    }
    
}